package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 售后服务
 */
@ApiModel(value = "com-lanchetech-entity-AfterSale")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AfterSale implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 订单商品明细id
     */
    @ApiModelProperty(value = "订单商品明细id")
    private Long orderSkuId;

    /**
     * 申请换货数量
     */
    @ApiModelProperty(value = "申请换货数量")
    private Integer count;

    /**
     * 申请退款金额
     */
    @ApiModelProperty(value = "申请退款金额")
    private BigDecimal applyAmount;

    /**
     * 已退款金额
     */
    @ApiModelProperty(value = "已退款金额")
    private BigDecimal refundAmount;

    /**
     * 图片凭证，最多3张
     */
    @ApiModelProperty(value = "图片凭证，最多3张")
    private String imageList;

    /**
     * 用户说明
     */
    @ApiModelProperty(value = "用户说明")
    private String customerRemark;

    /**
     * 客服处理回复意见
     */
    @ApiModelProperty(value = "客服处理回复意见")
    private String dealRemark;

    /**
     * 申请退款时间
     */
    @ApiModelProperty(value = "申请退款时间")
    private Date refundTime;

    /**
     * 客服处理时间
     */
    @ApiModelProperty(value = "客服处理时间")
    private Date dealTime;

    /**
     * 退货退款原因
     */
    @ApiModelProperty(value = "退货退款原因")
    private Integer refundReason;

    /**
     * 换货原因
     */
    @ApiModelProperty(value = "换货原因")
    private Integer exchangeReason;

    /**
     * 退货快递公司编码
     */
    @ApiModelProperty(value = "退货快递公司编码")
    private String returnLogisticsCompany;

    /**
     * 退货快递单号
     */
    @ApiModelProperty(value = "退货快递单号")
    private String returnLogisticsNumber;

    /**
     * 换发快递公司编码
     */
    @ApiModelProperty(value = "换发快递公司编码")
    private String deliveryLogisticsCompany;

    /**
     * 换货快递单号
     */
    @ApiModelProperty(value = "换货快递单号")
    private String deliveryLogisticsNumber;

    /**
     * 货物状态 0 未收到货 1 已收到货
     */
    @ApiModelProperty(value = "货物状态 0 未收到货 1 已收到货")
    private Byte productStatus;

    /**
     * 售后类型 0 仅退款 1 退货退款 2 换货
     */
    @ApiModelProperty(value = "售后类型 0 仅退款 1 退货退款 2 换货")
    private Byte type;

    /**
     * 售后状态 0 已取消申请售后 1 已申请售后  2 已完成售后 3 拒绝售后申请 4 同意售后申请，待退货验收
     */
    @ApiModelProperty(value = "售后状态 0 已取消申请售后 1 已申请售后  2 已完成售后 3 拒绝售后申请 4 同意售后申请，待退货验收")
    private Byte status;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /**
     * 商品SPU id
     */
    @ApiModelProperty(value = "商品SPU id")
    private Long spuId;

    /**
     * 商品SKU id
     */
    @ApiModelProperty(value = "商品SKU id")
    private Long skuId;

    /**
     * 隐藏售后 0 未隐藏 1 已隐藏
     */
    @ApiModelProperty(value = "隐藏售后 0 未隐藏 1 已隐藏")
    private Byte hidden;

    /**
     * 交易订单号
     */
    @ApiModelProperty(value = "交易订单号")
    private String tradeNo;

    /**
     * 退款订单号
     */
    @ApiModelProperty(value = "退款订单号")
    private String refundNo;

    /**
     * 商品名称(冗余)
     */
    @ApiModelProperty(value = "商品名称(冗余)")
    private String productName;

    /**
     * 商店编号
     */
    @ApiModelProperty(value = "商店编号")
    private Long shopId;

    /**
     * 订单类型
     */
    @ApiModelProperty(value = "订单类型")
    private Byte orderType;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    /**
     * 商户退款金额（单个订单明细商品）
     */
    @ApiModelProperty(value = "商户退款金额（单个订单明细商品）")
    private BigDecimal tenantAmount;

    private static final long serialVersionUID = 1L;
}